pandas中常用排序处理方法(Series与DataFrame) | 您所在的位置:网站首页 › pandas series 排序 › pandas中常用排序处理方法(Series与DataFrame) |
介于自己经常忘掉pandas的数据排序操作,这里做一个常用方法的整理,示例数据使用的知乎数据:
先导入并用groupby分别生成一个Series和DataFrame示例数据:
import pandas as pd
path = "./知乎数据_201701.csv"
data = pd.read_csv(path,engine='python')
series = data.groupby("职业1").size()
frame = data.groupby("所在行业")["关注的问题","关注的话题"].sum()
print(type(series))
print(serie.head())
print(type(frame))
print(frame.head())
#输出如下:
"""
职业1
交通仓储 578
信息传媒 1411
公共服务 2754
农林牧渔 462
制造加工 3345
dtype: int64
关注的问题 关注的话题
所在行业
?? 62 74
临床医疗 203987 28070
互联网 1848010 338690
交通仓储 28174 4017
人力资源 81371 13468
"""
对Series数据进行排序:
series.sort_values()与 sort_index()分别按照值、索引进行排序。
ascending参数默认为True,对values升序排序;
inplace参数默认为False,当指定inplace=True时,将同时修改原数据。
以sort_values()为例: s = series.sort_values(ascending=False) print(s.head()) #输出如下,对values进行了降序排列: """ 职业1 高新科技 10595 金融 4196 制造加工 3345 服务业 3068 公共服务 2754 dtype: int64 """ 对DataFrame数据进行排序: 与Series相似,Dataframe也有按sort_values()与 sort_index()分别按照值、索引进行排序。 参数by=“columns_name”指定排序值参考列,默认ascending=True按升序排序,指定inplace=True,将同时修改原数据。。 可传入axis=1,按行标签排序,不过用到的时候貌似不多。 df1 = frame.sort_values(by="关注的问题",ascending=False) print(df1.head()) #输出如下,按“关注的问题”列进行降序排序: """ 关注的问题 关注的话题 所在行业 互联网 1848010 338690 计算机软件 979808 180918 高等教育 540299 119766 高新科技 530060 87961 金融 498247 93680 """ df2 = frame.sort_values(by="关注的话题",ascending=True).drop("??") df2.head() #输出如下,按"关注的话题"列进行升序排序: """ 关注的问题 关注的话题 所在行业 ?? 62 74 疗养服务 147 122 管线运输 430 122 造纸业 2537 251 美容 801 602 """希望以后这种简单操作不要再忘了,多用才能记住啊~~ |
CopyRight 2018-2019 实验室设备网 版权所有 |